package com.kaifamiao.wrapper;

/**
 * 1、八种基本数据类型对应的包装类都是不可变类(immutable class)
 * 2、八种基本数据类型对应的包装类的实例都是不可变对象(immutable object)
 * 3、通过包装类的构造函数可以将基本数据类型的值包裹到一个对象中
 *        new Integer( 9527 ); // Java 9 开始废弃了这一类方法
 * 4、建议使用 包装类的 valueOf( primitive ) 方法将相应基本数据类型的值包裹到一个对象中
 *        这里的 primitive 包括 byte、short、int、long、float、double、boolean、char
 */
public class WrapperTest1 {

	public static void main(String[] args) {
		
		byte primitive1 = 100 ;
		// Byte first = new Byte( primitive1 );
		Byte wrapper1 = Byte.valueOf( primitive1 );
		System.out.println( wrapper1 );
		
		short primitive2 = 9999 ;
		// Short wrapper2 = new Short( primitive2 );
		Short wrapper2 = Short.valueOf( primitive2 );
		System.out.println( wrapper2 );
		
		int primitive3 = 98765 ;
		// Integer wrapper3 = new Integer( primitive3 );
		Integer wrapper3 = Integer.valueOf( primitive3 );
		System.out.println( wrapper3 );
		
		long primitive4 = 123456789L ;
		// Long wrapper4 = new Long( primitive4 );
		Long wrapper4 = Long.valueOf( primitive4 );
		System.out.println( wrapper4 );
		
		// float类型的字面量末尾必须加 f 或 F 后缀
		float primitive5 = 3.14f ;
		// Float wrapper5 = new Float( primitive5 );
		Float wrapper5 = Float.valueOf( primitive5 );
		System.out.println( wrapper5 );
		
		// double类型的字面量末尾可以加 d 或 D 后缀，但可以省略
		double primitive6 = 3.14 ;
		// Double wrapper6 = new Double( primitive6 );
		Double wrapper6 = Double.valueOf( primitive6 );
		System.out.println( wrapper6 );
		
		boolean primitive7 = true ;
		// Boolean wrapper7 = new Boolean( primitive7 );
		Boolean wrapper7 = Boolean.valueOf( primitive7 );
		System.out.println( wrapper7 );
		
		char primitive8 = 'a' ;
		// char primitive8 = 97 ;
		// char primitive8 = '\u8fa3'; 
		// char primitive8 = '\n' ;
		System.out.println( primitive8 );
		// Character wrapper8 = new Character( primitive8 );
		Character wrapper8 = Character.valueOf( primitive8 );
		System.out.println( wrapper8 );
		
	}

}
